1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Drawing;
5 using System.Data;
6 using System.Linq;
7 using System.Text;
8 using System.Threading.Tasks;
9 using System.Windows.Forms;
10
11 namespace SoftQuanLyNhaHang.Views
12 {
13
14 public delegate void LinkSuaDonHang_EventHandler(object sender, EventArgs e, int IdNhapHang, int NhaCungCapId, string trangThaiNhapHang);
15
16 public delegate void Link_ChiTietDonHang_Dong_UctNhapHang_EventHandler(object sender, EventArgs e);
17
18 public partial class uctNhapHang_ChiTiet : UserControl
19 {
20
21 public uctNhapHang_ChiTiet()
22 {
23 InitializeComponent();
24 }
25
26 public static uctNhapHang_ChiTiet uctNh_Ct = new uctNhapHang_ChiTiet();
27
28 public event LinkSuaDonHang_EventHandler Link_SuaDonHang_Get_UctNhapHang;
29
30 public event Link_ChiTietDonHang_Dong_UctNhapHang_EventHandler Link_ChiTietDonHang_Dong_UctNhapHang;
31
32 private int getIdNhapHang;
33 private int getNhaCungCapId;
34 private string getTrangThaiNhapHang;
35
36 //Nhap hang
37 //int _IdNhapHang = 0;
38 //int _NhaCungCapId = 0;
39 //string _trangThaiNhapHang = "NhapHang";
40
41
42
43 int _pageIndex = 1;
44 int _tongSoBanGhi_SanPhamNhapHang = 0;
45 double _tongDonHangAll = 0;
46
47 //thanh toan
48 int _IdThanhToan = 0;
49 //int _Tbl_TenBangId = 0;
50 double _SoTienThanhToan = 0;
51 string _MoTaThanhToan = string.Empty;
52 string _TrangThai = string.Empty;
53 DateTime _NgayTao = DateTime.Now;
54 string _Tbl_TenBang = string.Empty;
55 int _PageSize = 30;
56 int _PageIndex = 1;
57 int _stt = 0;
58
59 private void uctNhapHang_ChiTiet_Load(object sender, EventArgs e)
60 {
61 //this.BindDataGridView();
62 //this.HienThiChiTietDonHang();
63 }
64 /*
65 //--https://stackoverflow.com/questions/39284588/add-insert-primary-key-column-to-datatable-in-c-sharp-and-vb-net
66 private void BindDataGridView()
67 {
68 DataTable dt = new DataTable();
69 dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Id", typeof(int)),
70 new DataColumn("Name", typeof(string)),
71 new DataColumn("Country",typeof(string)) });
72 dt.Rows.Add(1, "John Hammond", "United States");
73 dt.Rows.Add(2, "Mudassar Khan", "India");
74 dt.Rows.Add(3, "Suzanne Mathews", "France");
75 dt.Rows.Add(4, "Robert Schidner", "Russia");
76 dt.Rows.Add(5, "John Hammond", "United States");
77 dt.Rows.Add(6, "Mudassar Khan", "India");
78 dt.Rows.Add(7, "Suzanne Mathews", "France");
79 dt.Rows.Add(8, "Robert Schidner", "Russia");
80 dt.Rows.Add(9, "John Hammond", "United States");
81 dt.Rows.Add(10, "Mudassar Khan", "India");
82 dt.Rows.Add(11, "Suzanne Mathews", "France");
83 dt.Rows.Add(12, "Robert Schidner", "Russia");
84 dt.Rows.Add(13, "John Hammond", "United States");
85 dt.Rows.Add(14, "Mudassar Khan", "India");
86 dt.Rows.Add(15, "Suzanne Mathews", "France");
87 dt.Rows.Add(16, "Robert Schidner", "Russia");
88 dt.Rows.Add(17, "John Hammond", "United States");
89 dt.Rows.Add(18, "Mudassar Khan", "India");
90 dt.Rows.Add(19, "Suzanne Mathews", "France");
91 dt.Rows.Add(20, "Robert Schidner", "Russia");
92 dt.Rows.Add(21, "John Hammond", "United States");
93 dt.Rows.Add(22, "Mudassar Khan", "India");
94 dt.Rows.Add(23, "Suzanne Mathews", "France");
95 dt.Rows.Add(24, "Robert Schidner", "Russia");
96 dt.Rows.Add(25, "John Hammond", "United States");
97
98 dt.Rows.Add(26, "John Hammond", "United States");
99 dt.Rows.Add(27, "Mudassar Khan", "India");
100 dt.Rows.Add(28, "Suzanne Mathews", "France");
101 dt.Rows.Add(29, "Robert Schidner", "Russia");
102 dt.Rows.Add(30, "John Hammond", "United States");
103 dt.Rows.Add(31, "Mudassar Khan", "India");
104 dt.Rows.Add(32, "Suzanne Mathews", "France");
105 dt.Rows.Add(33, "Robert Schidner", "Russia");
106 dt.Rows.Add(34, "John Hammond", "United States");
107 dt.Rows.Add(35, "Mudassar Khan", "India");
108 dt.Rows.Add(36, "Suzanne Mathews", "France");
109 dt.Rows.Add(37, "Robert Schidner", "Russia");
110 dt.Rows.Add(38, "John Hammond", "United States");
111 dt.Rows.Add(39, "Mudassar Khan", "India");
112 dt.Rows.Add(40, "Suzanne Mathews", "France");
113 dt.Rows.Add(41, "Robert Schidner", "Russia");
114 dt.Rows.Add(42, "John Hammond", "United States");
115 dt.Rows.Add(43, "Mudassar Khan", "India");
116 dt.Rows.Add(44, "Suzanne Mathews", "France");
117 dt.Rows.Add(45, "Robert Schidner", "Russia");
118 dt.Rows.Add(46, "John Hammond", "United States");
119 dt.Rows.Add(47, "Mudassar Khan", "India");
120 dt.Rows.Add(48, "Suzanne Mathews", "France");
121 dt.Rows.Add(49, "Robert Schidner", "Russia");
122 dt.Rows.Add(50, "John Hammond", "United States");
123
124 this.dgvDanhSachNhapHang.DataSource = dt;
125
126
127
128
129 }
130 */
131 //--https://www.aspsnippets.com/Articles/Print-contents-of-Form-in-Windows-Forms-WinForms-Application-using-C-and-VBNet.aspx
132 //Bitmap bitmap;
133
134 //private void btnPrint_Click(object sender, EventArgs e)
135 //{
136 /*
137
138 //Add a Panel control.
139 Panel panel = new Panel();
140 this.Controls.Add(panel);
141
142 //Create a Bitmap of size same as that of the Form.
143 Graphics grp = panel.CreateGraphics();
144 Size formSize = this.ClientSize;
145 bitmap = new Bitmap(formSize.Width, formSize.Height, grp);
146 grp = Graphics.FromImage(bitmap);
147
148 //Copy screen area that that the Panel covers.
149 Point panelLocation = PointToScreen(panel.Location);
150 grp.CopyFromScreen(panelLocation.X, panelLocation.Y, 0, 0, formSize);
151
152 //Show the Print Preview Dialog.
153 printPreviewDialog.Document = printDoc;
154 printPreviewDialog.PrintPreviewControl.Zoom = 1;
155 printPreviewDialog.ShowDialog();
156 */
157
158 // printDoc.Print();
159 //}
160
161 //-http://csharp.net-informations.com/datagridview/csharp-datagridview-printing.htm
162 //--https://www.youtube.com/watch?v=J35XHv3esAk
163 private void PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
164 {
165 /*
166 e.Graphics.DrawString("Xin chao", new Font("Arial", 12, FontStyle.Regular), Brushes.Black, new Point(25, 180));
167
168 e.Graphics.DrawString("Abc ok:", new Font("Arial", 12, FontStyle.Regular), Brushes.Black, new Point(25, 200));
169
170 Panel panel = new Panel();
171 this.Controls.Add(panel);
172
173 //Create a Bitmap of size same as that of the Form.
174 Graphics grp = panel.CreateGraphics();
175 Size formSize = this.ClientSize;
176 bitmap = new Bitmap(formSize.Width, formSize.Height, grp);
177 grp = Graphics.FromImage(bitmap);
178
179 //Copy screen area that that the Panel covers.
180 Point panelLocation = PointToScreen(panel.Location);
181 grp.CopyFromScreen(panelLocation.X, panelLocation.Y, 0, 0, formSize);
182 //e.Graphics.DrawString(panel1.gett, new Font("Arial", 12, FontStyle.Regular), Brushes.Black, new Point(25, 250));
183 */
184
185 //Bitmap pn2 = new Bitmap(this.panel2.Width, this.panel2.Height);
186 //panel2.DrawToBitmap(pn2, new Rectangle(0, 0, this.panel2.Width, this.panel2.Height));
187 //e.Graphics.DrawImage(pn2, 0, 0);
188
189 //e.Graphics.DrawString("Xin chao", new Font("Arial", 12, FontStyle.Regular), Brushes.Black, new Point(25, 180));
190
191 //e.Graphics.DrawString("Abc ok:", new Font("Arial", 12, FontStyle.Regular), Brushes.Black, new Point(25, 200));
192
193
194 //Bitmap bm = new Bitmap(this.dgvDanhSach.Width, this.dgvDanhSach.Height);
195 //dgvDanhSach.DrawToBitmap(bm, new Rectangle(0, 0, this.dgvDanhSach.Width, this.dgvDanhSach.Height));
196 //e.Graphics.DrawImage(bm, 0, 250);
197 /*
198
199 DataTable tmp_Table = new DataTable();
200 tmp_Table.Columns.AddRange(new DataColumn[3] { new DataColumn("Id", typeof(int)),
201 new DataColumn("Name", typeof(string)),
202 new DataColumn("Country",typeof(string)) });
203 tmp_Table.Rows.Add(1, "John Hammond", "United States");
204 tmp_Table.Rows.Add(2, "Mudassar Khan", "India");
205 tmp_Table.Rows.Add(3, "Suzanne Mathews", "France");
206 tmp_Table.Rows.Add(4, "Robert Schidner", "Russia");
207 tmp_Table.Rows.Add(5, "John Hammond", "United States");
208 tmp_Table.Rows.Add(6, "Mudassar Khan", "India");
209 */
210 /*
211 string header = "Master List";
212 string footer = string.Empty;
213
214 int columnCount = tmp_Table.Columns.Count;
215 int maxRows = tmp_Table.Rows.Count;
216
217
218 using (Graphics g = e.Graphics)
219 {
220 Brush brush = new SolidBrush(Color.Black);
221 Pen pen = new Pen(brush);
222 Font font = new Font("Arial", 10);
223 SizeF size;
224
225 int x = 0, y = 0, width = 130;
226 float xPadding;
227
228 // Here title is written, sets to top-middle position of the page
229 size = g.MeasureString(header, font);
230 xPadding = (width - size.Width) / 2;
231 g.DrawString(header, font, brush, x + 250, y + 5);
232
233 x = 0;
234 y += 30;
235
236 // Writes out all column names in designated locations, aligned as a table
237 foreach (DataColumn column in tmp_Table.Columns)
238 {
239 size = g.MeasureString(column.ColumnName, font);
240 xPadding = (width - size.Width) / 2;
241 g.DrawString(column.ColumnName, font, brush, x + xPadding, y + 5);
242 x += width;
243 }
244
245 x = 0;
246 y += 30;
247
248 int rowcount = 0;
249 // Process each row and place each item under correct column.
250 foreach (DataRow row in tmp_Table.Rows)
251 {
252 rowcount++;
253
254 for (int i = 0; i < columnCount; i++)
255 {
256 size = g.MeasureString(row[i].ToString(), font);
257 xPadding = (width - size.Width) / 2;
258
259 g.DrawString(row[i].ToString(), font, brush, x + xPadding, y + 5);
260 x += width;
261 }
262
263 e.HasMorePages = rowcount - 1 < maxRows;
264
265 x = 0;
266 y += 30;
267 }
268
269 footer = "Total: " + maxRows + " |Signed:..........................";
270 size = g.MeasureString(footer, font);
271 xPadding = (width - size.Width) / 2;
272 g.DrawString(footer, font, brush, x + 250, y + 5);
273
274 x = 0;
275 y += 30;
276 }
277
278 */
279 }
280
281 //--https://stackoverflow.com/questions/11669092/how-to-vertically-auto-size-a-winforms-datagridview-control-so-that-its-rows-ar
282 //hien thi tat ca cac rows in dgv
283 private void dgvDanhSach_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
284 {
285 var height = 40;
286 foreach (DataGridViewRow dr in dgvDanhSachNhapHang.Rows)
287 {
288 height += dr.Height;
289 }
290
291 dgvDanhSachNhapHang.Height = height;
292
293 //--https://stackoverflow.com/questions/8369999/c-sharp-change-the-location-of-an-object-programmatically
294 int y = height + 500;
295 //this.panel3.Location = new Point(
296 // 85,
297 // y
298 //);
299 }
300
301 /*
302 private void btnPrintPreview_Click(object sender, EventArgs e)
303 {
304
305 //Show the Print Preview Dialog.
306 printPreviewDialog.Document = printDoc;
307 printPreviewDialog.PrintPreviewControl.Zoom = 1;
308 printPreviewDialog.ShowDialog();
309 }
310 */
311
312 private void linkLabel_SuaDonHang_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
313 {
314 if (this.Link_SuaDonHang_Get_UctNhapHang != null)
315 {
316 this.Link_SuaDonHang_Get_UctNhapHang(sender, e, getIdNhapHang, getNhaCungCapId, getTrangThaiNhapHang);
317 }
318 }
319
320 //hien thi chi tiet nhap hang
321 public void HienThiChiTietDonHang(int IdNhapHang, int nhaCungCapId, string trangThaiNhapHang)
322 {
323 getIdNhapHang = IdNhapHang;
324 getNhaCungCapId = nhaCungCapId;
325 getTrangThaiNhapHang = trangThaiNhapHang;
326
327 //hiển thị thông tin nhà cung cấp
328 this.HienThiThongTin_NhaCungCap_DonHang_NhapHang(getNhaCungCapId);
329
330 //hiển thị thông tin sản phẩm trong đơn hàng
331 this.HienThiDanhSachSanPhamTrongDonHang_NhapHang(getIdNhapHang);
332
333 //hiển thị thông tin đơn hàng
334 this.HienThiThongTinDonHang_NhapHang(getIdNhapHang);
335
336 //hiển thị lịch sử thanh toán đơn hàng nhập hàng
337 this.HienThiLichSuThanhToanDonHang_NhapHang(getIdNhapHang, "tbl_NhapHang");
338
339 /*
340 //
341 this._IdNhapHang = IdNhapHang;
342 //_IdKho = 0;
343
344 dgvDanhSachNhapHang.Rows.Clear();
345 //Ẩn cột đầu tiên
346 dgvDanhSachNhapHang.RowHeadersVisible = false;
347 //-https://stackoverflow.com/questions/17404969/right-align-a-column-in-datagridview-doesnt-work
348 this.dgvDanhSachNhapHang.Columns["STT"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
349 this.dgvDanhSachNhapHang.Columns["STT"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
350 //this.dgvDanhSachNhapHang.Columns["STT"].SortMode = DataGridViewColumnSortMode.NotSortable;
351
352 this.dgvDanhSachNhapHang.Columns["SoLuong"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
353 this.dgvDanhSachNhapHang.Columns["SoLuong"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
354
355 this.dgvDanhSachNhapHang.Columns["GiaNhap"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
356 this.dgvDanhSachNhapHang.Columns["GiaNhap"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
357
358 this.dgvDanhSachNhapHang.Columns["ChietKhauPhanTram"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
359 this.dgvDanhSachNhapHang.Columns["ChietKhauPhanTram"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
360
361 this.dgvDanhSachNhapHang.Columns["Thue"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
362 this.dgvDanhSachNhapHang.Columns["Thue"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
363
364
365 this.dgvDanhSachNhapHang.Columns["TongTien"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
366 this.dgvDanhSachNhapHang.Columns["TongTien"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
367
368 DataTable dt = new DataTable();
369
370 //select từ bảng kho
371 dt = Controllers.KhoCtrl.FillDataSet_getKho_ByNhapHangId(-1, _IdNhapHang, 1000, _pageIndex).Tables[0];
372 if (dt.Rows.Count > 0)
373 {
374
375 _tongSoBanGhi = Int32.Parse(dt.Rows[0]["TongSoBanGhi"].ToString());
376
377 double so_luong = 0;
378 double gia_nhap = 0;
379 double thue_ = 0;
380 string ckTheo = "PhanTram";
381 double ckPtram = 0;
382 double ckTien = 0;
383 double tongmotMh = 0;
384
385 foreach (DataRow item in dt.Rows)
386 {
387 _stt += 1;
388 int n = dgvDanhSachNhapHang.Rows.Add();
389
390 dgvDanhSachNhapHang.Rows[n].Cells["IdKho"].Value = item["IdKho"].ToString();
391 dgvDanhSachNhapHang.Rows[n].Cells["MaSanPham"].Value = item["MaSanPham"].ToString();
392 //dgvDanhSachNhapHang.Rows[n].Cells["DonViTinhId"].Value = item["DonViTinhId"].ToString();
393 dgvDanhSachNhapHang.Rows[n].Cells["STT"].Value = _stt.ToString();
394 dgvDanhSachNhapHang.Rows[n].Cells["TenSanPham"].Value = item["TenSanPham"].ToString();
395 dgvDanhSachNhapHang.Rows[n].Cells["TenDonViTinh"].Value = item["TenDonViTinh"].ToString();
396
397 so_luong = CauHinhHeThong.Format_SoDeTinhToan(item["SoLuong"].ToString());
398 gia_nhap = CauHinhHeThong.Format_SoDeTinhToan(item["GiaNhap"].ToString());
399 thue_ = CauHinhHeThong.Format_SoDeTinhToan(item["Thue"].ToString());
400 ckTheo = item["ChietKhauTheo"].ToString();
401 ckPtram = CauHinhHeThong.Format_SoDeTinhToan(item["ChietKhauPhanTram"].ToString());
402 ckTien = CauHinhHeThong.Format_SoDeTinhToan(item["TienChietKhau"].ToString());
403
404 dgvDanhSachNhapHang.Rows[n].Cells["SoLuong"].Value = CauHinhHeThong.Format_SoDeHienThi(so_luong, false);// CauHinhHeThong.Format_HienThiKieuTien_CoDauPhanCachHangNghin(item["SoLuong"].ToString(), true); //item["SoLuong"].ToString();// DoFormat(_SoLuong);
405 dgvDanhSachNhapHang.Rows[n].Cells["GiaNhap"].Value = CauHinhHeThong.Format_SoDeHienThi(gia_nhap, true); //CauHinhHeThong.Format_HienThiKieuTien_CoDauPhanCachHangNghin(item["GiaNhap"].ToString(), true);
406
407 //hien thi chiet khau theo phan tram
408 //dgvDanhSachNhapHang.Rows[n].Cells["ChietKhauTheo"].Value = ckTheo;// _ChietKhauTheo;
409
410 dgvDanhSachNhapHang.Rows[n].Cells["ChietKhauPhanTram"].Value = CauHinhHeThong.Format_SoDeHienThi(ckPtram, false);// CauHinhHeThong.Format_HienThiKieuTien_CoDauPhanCachHangNghin(_ChietKhau_PhanTram.ToString(), true);
411 //dgvDanhSachNhapHang.Rows[n].Cells["TienChietKhau"].Value = CauHinhHeThong.Format_SoDeHienThi(ckTien, true);// CauHinhHeThong.Format_HienThiKieuTien_CoDauPhanCachHangNghin(item["SoLuong"].ToString(), true); //item["SoLuong"].ToString();// DoFormat(_SoLuong);
412 dgvDanhSachNhapHang.Rows[n].Cells["Thue"].Value = CauHinhHeThong.Format_SoDeHienThi(thue_, false);// item["Thue"].ToString();// CauHinhHeThong.Format_HienThiKieuTien_CoDauPhanCachHangNghin(item["Thue"].ToString(), true); //item["ChietKhauPhanTram"].ToString();
413
414 tongmotMh = CauHinhHeThong.TinhTongMot_MatHang(gia_nhap, so_luong, ckPtram, ckTien, ckTheo, thue_);// CauHinhHeThong.Format_HienThiKieuTien_CoDauPhanCachHangNghin(tt.ToString(), true);// this.TongTien_Mot_MatHang(item["GiaNhap"].ToString(), item["SoLuong"].ToString(), item["ChietKhauPhanTram"].ToString(), item["ChietKhauTheo"].ToString(), true);
415 dgvDanhSachNhapHang.Rows[n].Cells["TongTien"].Value = CauHinhHeThong.Format_SoDeHienThi(tongmotMh, true);
416 //dgvDanhSachNhapHang.Rows[n].Cells["Sua"].Value = "false";
417 }
418
419 }
420 else
421 {
422 _tongSoBanGhi = 0;
423 }
424
425 //Hiển thị thông tin nhà cung cấp
426 if (nhaCungCapId != 0)
427 {
428 DataTable dtNcc = new DataTable();
429
430 dtNcc = Controllers.NhaCungCapCtrl.FillDataSet_Get_NhaCungCap_ByIdNhaCungCap(nhaCungCapId).Tables[0];
431
432 if (dtNcc.Rows.Count > 0)
433 {
434 txtSoDienThoaiNCC.Text = dtNcc.Rows[0]["SoDienThoai"].ToString();
435 txtHoVaTenNCC.Text = dtNcc.Rows[0]["HoVaTen"].ToString();
436 txtDiaChiNcc.Text = dtNcc.Rows[0]["DiaChi"].ToString();
437 }
438
439 //hiển thị thông báo đơn hàng
440 //lblTrangThaiDonHang.Text = trangThaiNhapHang;
441 }
442
443 txtTongSoMatHang.Text = _tongSoBanGhi.ToString();
444
445 _tongDonHangAll = TongTienMotDonHang_All(_IdNhapHang);
446
447 txtTongTienDonHang.Text = CauHinhHeThong.Format_SoDeHienThi(_tongDonHangAll, true);
448
449 this.HienThiThongTinThanhToan(IdNhapHang, "tbl_NhapHang");
450 */
451 }
452
453 private double TongTienMotDonHang_All(int IdNhapHang)
454 {
455 DataTable dtKho = new DataTable();
456
457 double tongDh = 0;
458
459 dtKho = Controllers.NhapHangCtrl.FillDataSet_NhapHang_GetAll_Kho_ByNhapHangId(IdNhapHang).Tables[0];
460 if (dtKho.Rows.Count > 0)
461 {
462 double gnhap = 0;
463 double sluong = 0;
464 double thue = 0;
465 double ckPt = 0;
466 string chietkhautheo = "";
467
468 double tienchietkhau = 0;
469
470 foreach (DataRow item in dtKho.Rows)
471 {
472 if (!string.IsNullOrEmpty(item["GiaNhap"].ToString()))
473 {
474 gnhap = double.Parse(item["GiaNhap"].ToString());
475 }
476 else
477 {
478 gnhap = 0;
479 }
480
481 if (!string.IsNullOrEmpty(item["SoLuong"].ToString()))
482 {
483 sluong = double.Parse(item["SoLuong"].ToString());
484 }
485 else
486 {
487 sluong = 0;
488 }
489
490 if (!string.IsNullOrEmpty(item["Thue"].ToString()))
491 {
492 thue = double.Parse(item["Thue"].ToString());
493 }
494 else
495 {
496 thue = 0;
497 }
498
499 if (!string.IsNullOrEmpty(item["ChietKhauPhanTram"].ToString()))
500 {
501 ckPt = double.Parse(item["ChietKhauPhanTram"].ToString());
502 }
503 else
504 {
505 ckPt = 0;
506 }
507
508 chietkhautheo = item["ChietKhauTheo"].ToString();
509
510 if (!string.IsNullOrEmpty(item["TienChietKhau"].ToString()))
511 {
512 tienchietkhau = double.Parse(item["TienChietKhau"].ToString());
513 }
514 else
515 {
516 tienchietkhau = 0;
517 }
518
519 tongDh += CauHinhHeThong.TinhTongMot_MatHang(gnhap, sluong, ckPt, tienchietkhau, chietkhautheo, thue);// (gnhap * sluong) - tienchietkhau + (gnhap * sluong * thue / 100);
520 }
521
522 }
523
524 return tongDh;
525 }
526
527 /*
528 //bỏ
529 //lịch sử thanh toán của đơn hàng
530 private void HienThiThongTinThanhToan(int idBang, string tenBang)
531 {
532 //Hiển thị trong textbox
533 DataTable dtNH = new DataTable();
534 dtNH = Controllers.NhapHangCtrl.FillDataSet_NhapHang_Get_ByNhapHangId(idBang).Tables[0];
535 double No_NCC = 0;
536 if (dtNH.Rows.Count > 0)
537 {
538 txtShowTenDonHang.Text = dtNH.Rows[0]["TenDonHang"].ToString();
539
540 double tongdh = CauHinhHeThong.Format_SoDeTinhToan(dtNH.Rows[0]["TongDonHang"].ToString());
541 //txtShowTongTien.Text = CauHinhHeThong.Format_SoDeHienThi(tongdh, true) ;
542
543 No_NCC = CauHinhHeThong.Format_SoDeTinhToan(dtNH.Rows[0]["No_NCC"].ToString());
544 txtnoNCC.Text = CauHinhHeThong.Format_SoDeHienThi(No_NCC, true);
545 }
546
547 //hiển thị ra dgv
548 dgvThanhToan.Rows.Clear();
549 //Ẩn cột đầu tiên
550 dgvThanhToan.RowHeadersVisible = false;
551 //-https://stackoverflow.com/questions/17404969/right-align-a-column-in-datagridview-doesnt-work
552 this.dgvThanhToan.Columns["STT_TT"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
553 this.dgvThanhToan.Columns["STT_TT"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
554 //this.dgvDanhSachNhapHang.Columns["STT"].SortMode = DataGridViewColumnSortMode.NotSortable;
555
556 this.dgvThanhToan.Columns["SoTienThanhToan"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
557 this.dgvThanhToan.Columns["SoTienThanhToan"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
558
559
560 DataTable dtTt = new DataTable();
561
562 dtTt = Controllers.ThanhToanCtrl.FillDataSet_getThanhToan_Search_ByIdTableName(_IdThanhToan, idBang, _SoTienThanhToan, _MoTaThanhToan, _TrangThai, _NgayTao, tenBang, _PageSize, _PageIndex).Tables[0];
563
564 if (dtTt.Rows.Count > 0)
565 {
566 double sotientt = 0;
567 int _stt = 0;
568 foreach (DataRow item in dtTt.Rows)
569 {
570 _stt += 1;
571 int n = dgvThanhToan.Rows.Add();
572
573 dgvThanhToan.Rows[n].Cells["IdThanhToan"].Value = item["IdThanhToan"].ToString();
574 dgvThanhToan.Rows[n].Cells["STT_TT"].Value = _stt.ToString();
575 sotientt = CauHinhHeThong.Format_SoDeTinhToan(item["SoTienThanhToan"].ToString());
576
577 dgvThanhToan.Rows[n].Cells["SoTienThanhToan"].Value = CauHinhHeThong.Format_SoDeHienThi(sotientt, true);
578 dgvThanhToan.Rows[n].Cells["NgayTao_TT"].Value = item["NgayTao"].ToString();
579 dgvThanhToan.Rows[n].Cells["GhiChu_TT"].Value = item["MoTaThanhToan"].ToString();
580 }
581 }
582
583 }
584 */
585
586 //Hiển thị thông tin nhà cung cấp
587 private void HienThiThongTin_NhaCungCap_DonHang_NhapHang(int idNhaCungCap)
588 {
589 //Hiển thị thông tin nhà cung cấp
590 if (idNhaCungCap != 0)
591 {
592 DataTable dtNcc = new DataTable();
593
594 dtNcc = Controllers.NhaCungCapCtrl.FillDataSet_Get_NhaCungCap_ByIdNhaCungCap(idNhaCungCap).Tables[0];
595
596 if (dtNcc.Rows.Count > 0)
597 {
598 txtSoDienThoaiNCC.Text = dtNcc.Rows[0]["SoDienThoai"].ToString();
599 txtHoVaTenNCC.Text = dtNcc.Rows[0]["HoVaTen"].ToString();
600 txtDiaChiNcc.Text = dtNcc.Rows[0]["DiaChi"].ToString();
601 }
602 else
603 {
604 //không hiển thị gì cả
605 txtSoDienThoaiNCC.Text = "";
606 txtHoVaTenNCC.Text = "";
607 txtDiaChiNcc.Text = "";
608 }
609 }
610 else
611 {
612 //không hiển thị gì cả
613 txtSoDienThoaiNCC.Text = "";
614 txtHoVaTenNCC.Text = "";
615 txtDiaChiNcc.Text = "";
616 }
617
618 }
619
620 //Hiển thị danh sách sản phẩm nhập hàng
621 private void HienThiDanhSachSanPhamTrongDonHang_NhapHang(int idNhapHang)
622 {
623 dgvDanhSachNhapHang.Rows.Clear();
624 //Ẩn cột đầu tiên
625 dgvDanhSachNhapHang.RowHeadersVisible = false;
626 //-https://stackoverflow.com/questions/17404969/right-align-a-column-in-datagridview-doesnt-work
627 this.dgvDanhSachNhapHang.Columns["STT"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
628 this.dgvDanhSachNhapHang.Columns["STT"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
629 //this.dgvDanhSachNhapHang.Columns["STT"].SortMode = DataGridViewColumnSortMode.NotSortable;
630
631 this.dgvDanhSachNhapHang.Columns["SoLuong"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
632 this.dgvDanhSachNhapHang.Columns["SoLuong"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
633
634 this.dgvDanhSachNhapHang.Columns["GiaNhap"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
635 this.dgvDanhSachNhapHang.Columns["GiaNhap"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
636
637 this.dgvDanhSachNhapHang.Columns["ChietKhauPhanTram"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
638 this.dgvDanhSachNhapHang.Columns["ChietKhauPhanTram"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
639
640 this.dgvDanhSachNhapHang.Columns["Thue"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
641 this.dgvDanhSachNhapHang.Columns["Thue"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
642
643 this.dgvDanhSachNhapHang.Columns["TongTien"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
644 this.dgvDanhSachNhapHang.Columns["TongTien"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
645
646 DataTable dt = new DataTable();
647
648 //select từ bảng kho
649 dt = Controllers.KhoCtrl.FillDataSet_getKho_ByNhapHangId(-1, idNhapHang, 1000, _pageIndex).Tables[0];
650 if (dt.Rows.Count > 0)
651 {
652 _tongSoBanGhi_SanPhamNhapHang = Int32.Parse(dt.Rows[0]["TongSoBanGhi"].ToString());
653
654 double so_luong = 0;
655 double gia_nhap = 0;
656 double thue_ = 0;
657 string ckTheo = "PhanTram";
658 double ckPtram = 0;
659 double ckTien = 0;
660 double tongmotMh = 0;
661
662 foreach (DataRow item in dt.Rows)
663 {
664 _stt += 1;
665 int n = dgvDanhSachNhapHang.Rows.Add();
666
667 dgvDanhSachNhapHang.Rows[n].Cells["IdKho"].Value = item["IdKho"].ToString();
668 dgvDanhSachNhapHang.Rows[n].Cells["MaSanPham"].Value = item["MaSanPham"].ToString();
669 //dgvDanhSachNhapHang.Rows[n].Cells["DonViTinhId"].Value = item["DonViTinhId"].ToString();
670 dgvDanhSachNhapHang.Rows[n].Cells["STT"].Value = _stt.ToString();
671 dgvDanhSachNhapHang.Rows[n].Cells["TenSanPham"].Value = item["TenSanPham"].ToString();
672 dgvDanhSachNhapHang.Rows[n].Cells["TenDonViTinh"].Value = item["TenDonViTinh"].ToString();
673
674 so_luong = CauHinhHeThong.Format_SoDeTinhToan(item["SoLuong"].ToString(), false);
675 gia_nhap = CauHinhHeThong.Format_SoDeTinhToan(item["GiaNhap"].ToString(), false);
676 thue_ = CauHinhHeThong.Format_SoDeTinhToan(item["Thue"].ToString(), false);
677 ckTheo = item["ChietKhauTheo"].ToString();
678 ckPtram = CauHinhHeThong.Format_SoDeTinhToan(item["ChietKhauPhanTram"].ToString(), false);
679 ckTien = CauHinhHeThong.Format_SoDeTinhToan(item["TienChietKhau"].ToString(), false);
680
681 dgvDanhSachNhapHang.Rows[n].Cells["SoLuong"].Value = CauHinhHeThong.Format_SoDeHienThi(so_luong, false);// CauHinhHeThong.Format_HienThiKieuTien_CoDauPhanCachHangNghin(item["SoLuong"].ToString(), true); //item["SoLuong"].ToString();// DoFormat(_SoLuong);
682 dgvDanhSachNhapHang.Rows[n].Cells["GiaNhap"].Value = CauHinhHeThong.Format_SoDeHienThi(gia_nhap, true); //CauHinhHeThong.Format_HienThiKieuTien_CoDauPhanCachHangNghin(item["GiaNhap"].ToString(), true);
683
684 //hien thi chiet khau theo phan tram
685 //dgvDanhSachNhapHang.Rows[n].Cells["ChietKhauTheo"].Value = ckTheo;// _ChietKhauTheo;
686
687 dgvDanhSachNhapHang.Rows[n].Cells["ChietKhauPhanTram"].Value = CauHinhHeThong.Format_SoDeHienThi(ckPtram, false);// CauHinhHeThong.Format_HienThiKieuTien_CoDauPhanCachHangNghin(_ChietKhau_PhanTram.ToString(), true);
688 //dgvDanhSachNhapHang.Rows[n].Cells["TienChietKhau"].Value = CauHinhHeThong.Format_SoDeHienThi(ckTien, true);// CauHinhHeThong.Format_HienThiKieuTien_CoDauPhanCachHangNghin(item["SoLuong"].ToString(), true); //item["SoLuong"].ToString();// DoFormat(_SoLuong);
689 dgvDanhSachNhapHang.Rows[n].Cells["Thue"].Value = CauHinhHeThong.Format_SoDeHienThi(thue_, false);// item["Thue"].ToString();// CauHinhHeThong.Format_HienThiKieuTien_CoDauPhanCachHangNghin(item["Thue"].ToString(), true); //item["ChietKhauPhanTram"].ToString();
690
691 tongmotMh = CauHinhHeThong.TinhTongMot_MatHang(gia_nhap, so_luong, ckPtram, ckTien, ckTheo, thue_);// CauHinhHeThong.Format_HienThiKieuTien_CoDauPhanCachHangNghin(tt.ToString(), true);// this.TongTien_Mot_MatHang(item["GiaNhap"].ToString(), item["SoLuong"].ToString(), item["ChietKhauPhanTram"].ToString(), item["ChietKhauTheo"].ToString(), true);
692 dgvDanhSachNhapHang.Rows[n].Cells["TongTien"].Value = CauHinhHeThong.Format_SoDeHienThi(tongmotMh, true);
693 //dgvDanhSachNhapHang.Rows[n].Cells["Sua"].Value = "false";
694 }
695
696 }
697 else
698 {
699 _tongSoBanGhi_SanPhamNhapHang = 0;
700 }
701
702 txtTongSoMatHang.Text = _tongSoBanGhi_SanPhamNhapHang.ToString();
703
704 }
705
706 //Hiển thị thông tin nhập hàng
707 private void HienThiThongTinDonHang_NhapHang(int idNhapHang)
708 {
709 //Hiển thị trong textbox
710 DataTable dtNH = new DataTable();
711 dtNH = Controllers.NhapHangCtrl.FillDataSet_NhapHang_Get_ByNhapHangId(idNhapHang).Tables[0];
712
713 //double No_NCC = 0;
714 if (dtNH.Rows.Count > 0)
715 {
716 txtMaDonHang.Text = CauHinhHeThong.TIEU_DE_NGU_HOA_DON_NHAP_HANG + idNhapHang.ToString();
717
718 txtShowTenDonHang.Text = dtNH.Rows[0]["TenDonHang"].ToString();
719
720 double cpthem = CauHinhHeThong.Format_SoDeTinhToan(dtNH.Rows[0]["ChiPhiThem"].ToString(),false);
721
722 txtChiPhiThem.Text = CauHinhHeThong.Format_SoDeHienThi(cpthem, true);
723
724 txtMoTaChiPhiThem.Text = dtNH.Rows[0]["MoTaChiPhiThem"].ToString() + ". " + dtNH.Rows[0]["GhiChu"].ToString();
725
726 txtNgayTao.Text = CauHinhHeThong.Format_HienThiNgayThangNam(dtNH.Rows[0]["NgayTao"].ToString(), true);
727
728 labelTrangThai.Text = CauHinhHeThong.TrangThai_NhapHang(dtNH.Rows[0]["TrangThai"].ToString());
729 }
730 }
731
732 //Hiển thị lịch sử thanh toán
733 private void HienThiLichSuThanhToanDonHang_NhapHang(int tbl_TenBangId, string tbl_TenBang)
734 {
735 //hiển thị ra dgv
736 dgvThanhToan.Rows.Clear();
737 //Ẩn cột đầu tiên
738 dgvThanhToan.RowHeadersVisible = false;
739 //-https://stackoverflow.com/questions/17404969/right-align-a-column-in-datagridview-doesnt-work
740 this.dgvThanhToan.Columns["STT_TT"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
741 this.dgvThanhToan.Columns["STT_TT"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
742 //this.dgvDanhSachNhapHang.Columns["STT"].SortMode = DataGridViewColumnSortMode.NotSortable;
743
744
745 this.dgvThanhToan.Columns["SoTienThanhToan"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
746 this.dgvThanhToan.Columns["SoTienThanhToan"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
747
748
749 this.dgvThanhToan.Columns["NgayTao_TT"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
750 this.dgvThanhToan.Columns["NgayTao_TT"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
751
752
753 DataTable dtTt = new DataTable();
754
755 dtTt = Controllers.ThanhToanCtrl.FillDataSet_getThanhToan_Search_ByIdTableName(_IdThanhToan, tbl_TenBangId, _SoTienThanhToan, _MoTaThanhToan, _TrangThai, _NgayTao, tbl_TenBang, _PageSize, _PageIndex).Tables[0];
756
757 //tổng đơn hàng
758 _tongDonHangAll = TongTienMotDonHang_All(tbl_TenBangId);
759
760 txtTongTienDonHang.Text = CauHinhHeThong.Format_SoDeHienThi(_tongDonHangAll, true);
761
762 double _tongTien_DaThanhToan = 0;
763
764 double _noNhaCungCap = 0;
765
766 if (dtTt.Rows.Count > 0)
767 {
768 double sotientt = 0;
769 int _sttTT = 0;
770 foreach (DataRow item in dtTt.Rows)
771 {
772 _sttTT += 1;
773 int n = dgvThanhToan.Rows.Add();
774
775 dgvThanhToan.Rows[n].Cells["IdThanhToan"].Value = item["IdThanhToan"].ToString();
776 dgvThanhToan.Rows[n].Cells["STT_TT"].Value = _sttTT.ToString();
777
778 sotientt = CauHinhHeThong.Format_SoDeTinhToan(item["SoTienThanhToan"].ToString(), false);
779
780 dgvThanhToan.Rows[n].Cells["SoTienThanhToan"].Value = CauHinhHeThong.Format_SoDeHienThi(sotientt, true);
781 dgvThanhToan.Rows[n].Cells["NgayTao_TT"].Value = CauHinhHeThong.Format_HienThiNgayThangNam(item["NgayTao"].ToString(),false);
782 dgvThanhToan.Rows[n].Cells["GhiChu_TT"].Value = item["MoTaThanhToan"].ToString();
783
784 _tongTien_DaThanhToan += sotientt;
785
786 }
787 }
788
789
790 _noNhaCungCap = _tongDonHangAll - _tongTien_DaThanhToan;
791
792 txtSoTienDaThanhToan.Text = CauHinhHeThong.Format_SoDeHienThi(_tongTien_DaThanhToan, true);
793
794 txtnoNCC.Text = CauHinhHeThong.Format_SoDeHienThi(_noNhaCungCap, true);
795
796 }
797
798 /*
799 private void button2_Click(object sender, EventArgs e)
800 {
801 this.btnPrintPreview_Click(sender, e);
802 }
803 */
804
805 private void linkLabelDong_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
806 {
807 if (this.Link_ChiTietDonHang_Dong_UctNhapHang != null)
808 {
809 this.Link_ChiTietDonHang_Dong_UctNhapHang(sender, e);
810 }
811 }
812
813 private void linkLabelCopyDonHang_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
814 {
815
816 int idNhapHang2 = 0;
817 idNhapHang2 = Controllers.NhapHangCtrl.InsertNhapHangCopy(getIdNhapHang);
818
819 if (this.Link_SuaDonHang_Get_UctNhapHang != null)
820 {
821 this.Link_SuaDonHang_Get_UctNhapHang(sender, e, idNhapHang2, getNhaCungCapId, "CopyDonHang");
822 }
823 }
824
825 }
826 }